#include "Indice.h"

class IndiceHashExtensible : public Indice
{
public:
  IndiceHashExtensible (
                const unsigned long int tamanoComponente,
                const string &ruta,
                const string &nombre);

  IndiceHashExtensible ( const string & ruta,
                         const string &nombre);


  virtual bool eliminar ( const Clave &clave);

  virtual void insertar (
                const Clave & clave,
                const unsigned long int &posicionBloque);

  virtual bool buscar (const Clave &clave,
                       unsigned long int &posicionBloque)
                       const;

  unsigned long int crearDireccion( const Clave &clave,
                    int cantidadBits = -1) const;

  unsigned long int crearDireccion(
                    const string &claveHasheada,
                    int cantidadBits = -1) const;
private:
  EstrategiaHash *estrategiaHash;
  Archivo *almacenamientoCubas;
  Directorio directorio;
}
